<?xml version="1.0" encoding="UTF-8"?>
<doc>
<title>switch 语句</title>

<para>
<ptitle>switch 语句 </ptitle>
　使用 switch 语句可以更简洁地实现 if ～ else if 的结构。格式如下。<r/>
<bq>
switch(base_expression)<r/>
{<r/>
<kw>case</kw> condition_expression1 :<r/>
<r/>
case condition_expression2 :<r/>
<r/>
:<r/>
:<r/>
<r/>
<kw>default</kw>:<r/>
<r/>
:<r/>
:<r/>
}<r/>
</bq>
<r/>
　写在 base_expression 位置的表达式会在刚开始时被求值。switch 后面的语句块中的 case 的后面的 condition_expression? 也可以写成表达式。<r/>
　condition_expression? 会在语句块中被依次求值。求得的结果和 base_expression 相同时，就会从对应的位置开始执行。与 condition_expression? 的值不一致的话，对应部分的语句会被忽略。一致的话，在那之后的 case 和 default 的部分的语句会被忽略。<r/>
　default: 可以省略，处理到 default 这个标识时， default 以后的语句会被强制执行。<r/>
　从语句块中跳出可以使用 <kw>break</kw>; 。请注意，忘了写 break 的话，可能会一直执行到下一个 case 的内容。<r/>
<r/>
<example>
	switch(a)<r/>
	{<r/>
	case 0:<r/>
		inform("a 的值为 0 ");<r/>
		break;<r/>
	case 1:<r/>
		inform("a 的值为 1 ");<r/>
		break;<r/>
	case 2:<r/>
		inform("a 的值为 2 ");<r/>
		break;<r/>
	default:<r/>
		inform("a 的值为除了 0 1 2 以外的其他值");<r/>
	}<r/>
<r/>
<r/>
	switch(a)<r/>
	{<r/>
	case 0:<r/>
	case 1: // 因为没有 break ，case 0 的情况下也会经过这里<r/>
		inform("a 的值为 0 或 1 ");<r/>
		break;<r/>
	case 2:<r/>
		inform("a 的值为 2 ");<r/>
	} // 因为没有 default ， 0 1 2 以外的情况下会什么也不执行<r/>
<r/>
<r/>
	switch(a)<r/>
	{<r/>
	case b+1: // 也可以在 case 后面指定表达式<r/>
		inform("a==b+1");<r/>
		break;<r/>
	case c+b:<r/>
		inform("a==c+b");<r/>
	}<r/>
<r/>
	switch(str)<r/>
	{<r/>
	case "abcde": // 也可以指定字符串<r/>
		type=1;<r/>
		break;<r/>
	case "字符串":<r/>
		type=2;<r/>
		break;<r/>
	}<r/>
</example>

</para>
</doc>
